import {categoryJson, bannerJson, floorJson} from '@/api/index.js';

// 材料：仓库存储数据的地方
let state = {
    category: [],
    banner: [],
    floor: []
};

// 加工：仓库计算属性
let getters = {

};

// 厨师：唯一可以修改仓库数据地方【工人】
let mutations = {
    CATEGORY(state, value) {
        state.category = value;
    }
    ,
    BANNER(state, value) {
        state.banner = value;
    },
    FLOOR(state, value) {
        state.floor = value;
    }
};

// 迎宾：可以处理业务逻辑【if、异步语句等等】
let actions = {
    // 商品分类的actions
    // actions地盘:可不可以书写异步语句
    async getCategoryJson({commit, state, dispatch}) {
        // 获取服务器的数据,存储在vuex仓库中
        // reqCategory函数执行,返回的是Promise对象【pending、成功、失败】
        // await 等待成功的结果
        let result = await categoryJson();
        //判断服务器返回的状态是200->成功
        if (result.code === 200) {
            commit("CATEGORY", result.data);
        }
    },
    // 获取banner图的action
    async getBannerJson({commit, state, dispatch}) {
        // 获取首页数据
        let result = await bannerJson();
        if (result.code === 200) {
            commit("BANNER", result.data);
        }
    },
    // 获取Floor组件的数据
    async getFloorJson({commit, state, dispatch}) {
        let result = await floorJson();
        if (result.code === 200) {
            commit('FLOOR', result.data);
        }
    }
};

// 对外暴露小仓库
export default {
    state,
    mutations,
    actions,
    getters
};



